#ifndef ETAT_H
#define ETAT_H


typedef enum Etat
{
	eDEPLOIEMENT = 0,
	eCOMBAT = 1,
	eDEPLACEMENT = 2,
	eSPECT = 3,
	eATTENTE = 4
} Etat;


enum eReseau
{
	eMAIN_NEWCLIENT = 1,
	eMAIN_NEWGAME = 2,
	eMAIN_NEWMSG = 3,
	eMAIN_DECOCLIENT = 4,
	eMAIN_DECOGAME = 5,
	eMAIN_ALLCLIENTS = 6,
	eMAIN_ALLGAMES = 7,
	eJOIN_GAME = 8,
	eNEW_GAME = 9,
	eLAUNCH = 10,
	eCREATE_GAME = 11,
	eMAIN_ADDPARTIE = 12,
	eMAIN_RMPARTIE = 13,
	eMAIN_READY = 14,
	eMAIN_NEWCLSALON = 15,
	eMAIN_DELCLSALON = 16,
	eMAIN_ALLCLIENTGAME = 17,
	eMAIN_QUIT = 18,

	eGAME_ETAT = 19,
	eGAME_SELECTION = 20,
	eGAME_TMAJ = 21,
	eGAME_WIN = 22,
	eGAME_DEPLOY = 23,
	eGAME_NEXT = 24,
	eGAME_LIST = 25
};

#endif // ETAT_H

/*****
CONNEXION
1.(C) Connect & envoi pseudo
1.(S) Accept & reception & envoi 0/1
2.(C) si 1 OK sinon -> 1.(C)
2.(S) envoi à tous les clients qu'un nouveau client s'est connecté -> eMAIN_NEWCLIENT + envoiClient()

ENVOI LISTE
1.(C) envoi eMAIN_ALLCLIENTS
1.(S) reception & envoi eMAIN_ALLCLIENTS + nb clients + clients
2.(C) reception eMAIN_ALLCLIENTS => reception nb cli => boucle receptionPartie() 
Idem pour liste parties

RECEPTION QLCONQUE
(C) 	Si eMAIN_NEWCLIENT => receptionClient()
		Si eMAIN_NEWGAME => receptionPartie()
		Si eMAIN_NEWMSG => receptionMessage()
		Si eMAIN_DECOCLIENT => decoClient()
		Si eMAIN_DECOGAME => decoPartie()
		Si eLAUNCH => receptionCarte()
		
(S)		Si eMAIN_NEWMSG => reception du message + envoi eMAIN_NEWMSG + envoi message a tous les clients
		Si eJOIN_GAME => reception nom de la partie + envoi 0/1/2 (0 = partie existe pas, 1 = OK, 2 = partie pleine)
		Si eNEW_GAME => reception nom de la partie + reception nb joueurs max + envoi 0/1 (0 = partie existe deja, 1 = OK)
		Si eMAIN_DECOCLIENT => envoi a tous les clients eMAIN_DECOCLIENT + envoi nom du client
		Si eLAUNCH => envoi a tous les clients de la partie eLAUNCH + run() + envoi a tout les clients eMAIN_DECOGAME + envoi nom de la partie
*****/

/*
TODO : 
// Faire un tableau (list) de parties et un tableau de clients OK
- receptionClient() : receptionne 1 client (pr l'instant le nom)	// envoi pour le serveur //OK
- receptionPartie() : receptionne 1 partie (pr l'instant le nom)	//						 //OK
- receptionMsg() : receptionne 1 message													 //OK
- receptionCarte() : receptionne la carte // doit aussi changer le cote GUI
*/
